-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

=============================================================================
FreeBSD-SA-03:18.openssl                                    Security Advisory
                                                          The FreeBSD Project

Topic:          OpenSSL vulnerabilities in ASN.1 parsing

Category:       crypto
Module:         openssl
Announced:      2003-10-03
Credits:        NISCC <URL:http://www.niscc.gov.uk>
                Dr. Stephen Henson <steve@openssl.org>
Affects:        FreeBSD versions 4.0-RELEASE through 4.8-RELEASE,
                5.0-RELEASE, and 5.1-RELEASE
                4-STABLE prior to the correction date
Corrected:      2003-10-03 01:32:13 UTC (RELENG_4, 4.9-RC)
                2003-10-03 18:13:19 UTC (RELENG_5_1, 5.1-RELEASE-p10)
                2003-10-03 20:22:27 UTC (RELENG_5_0, 5.0-RELEASE-p18)
                2003-10-03 18:14:26 UTC (RELENG_4_8, 4.8-RELEASE-p13)
                2003-10-03 20:24:31 UTC (RELENG_4_7, 4.7-RELEASE-p23)
                2003-10-03 20:24:59 UTC (RELENG_4_6, 4.6.2-RELEASE-p26)
FreeBSD only:   NO

I.  Background

FreeBSD includes software from the OpenSSL Project.  The OpenSSL
Project is a collaborative effort to develop a robust, commercial-
grade, full-featured, and Open Source toolkit implementing the Secure
Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1)
protocols as well as a full-strength general purpose cryptography
library.

II.  Problem Description

This advisory addresses four separate flaws recently fixed in OpenSSL.
The flaws are described in the following excerpt from the OpenSSL.org
advisory (see references):

  1. Certain ASN.1 encodings that are rejected as invalid by the
  parser can trigger a bug in the deallocation of the corresponding
  data structure, corrupting the stack. This can be used as a denial
  of service attack. It is currently unknown whether this can be
  exploited to run malicious code. This issue does not affect OpenSSL
  0.9.6.

  2. Unusual ASN.1 tag values can cause an out of bounds read
  under certain circumstances, resulting in a denial of service
  vulnerability.

  3. A malformed public key in a certificate will crash the verify
  code if it is set to ignore public key decoding errors. Public
  key decode errors are not normally ignored, except for
  debugging purposes, so this is unlikely to affect production
  code. Exploitation of an affected application would result in a
  denial of service vulnerability.

  4. Due to an error in the SSL/TLS protocol handling, a server
  will parse a client certificate when one is not specifically
  requested. This by itself is not strictly speaking a vulnerability
  but it does mean that *all* SSL/TLS servers that use OpenSSL can be
  attacked using vulnerabilities 1, 2 and 3 even if they don't enable
  client authentication.

III.  Impact

A remote attacker may create a malicious ASN.1 encoded message that
will cause an OpenSSL-using application to crash, or even perhaps
execute arbitrary code with the privileges of the application.

Only applications that use OpenSSL's ASN.1 or X.509 handling code
are affected.  Applications that use other portions of OpenSSL
are unaffected (e.g. Apache+mod_ssl is affected, while OpenSSH is
unaffected).

IV.  Workaround

No workaround is available.

V.   Solution

Perform one of the following:

1) Upgrade your vulnerable system to 4-STABLE; or to the RELENG_5_1,
RELENG_4_8, or RELENG_4_7 security branch dated after the correction
date.

2) To patch your present system:

The following patches have been verified to apply to FreeBSD 4.6, 4.7,
4.8, 5.0, and 5.1 systems.

a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.

[FreeBSD 4.6, 4.7, 5.0 -- be sure you have previously applied the
 patches for advisories FreeBSD-SA-03:02 and FreeBSD-SA-03:06 before
 applying this patch.]

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:18/openssl96.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:18/openssl96.patch.asc

[FreeBSD 4.8, 5.1]
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:18/openssl97.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:18/openssl97.patch.asc

b) Execute the following commands as root:

# cd /usr/src
# patch < /path/to/patch

c) Recompile the operating system as described in
<URL: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html >.

Note that any statically linked applications that are not part of the
base system (i.e. from the Ports Collection or other 3rd-party sources)
must be recompiled.

All affected applications must be restarted for them to use the
corrected library.  Though not required, rebooting may be the easiest
way to accomplish this.

VI.  Correction details

The following list contains the revision numbers of each file that was
corrected in FreeBSD.

Branch                                                           Revision
  Path
- -------------------------------------------------------------------------
RELENG_5_1
  src/UPDATING                                                 1.251.2.12
  src/crypto/openssl/crypto/asn1/asn1_lib.c                   1.1.1.8.2.1
  src/crypto/openssl/crypto/asn1/tasn_dec.c                   1.1.1.1.4.1
  src/crypto/openssl/crypto/x509/x509_vfy.c                   1.1.1.5.2.1
  src/crypto/openssl/ssl/s3_srvr.c                           1.1.1.11.2.1
  src/sys/conf/newvers.sh                                       1.50.2.12
RELENG_5_0
  src/UPDATING                                                 1.229.2.24
  src/crypto/openssl/crypto/asn1/asn1_lib.c                   1.1.1.7.2.1
  src/crypto/openssl/crypto/x509/x509_vfy.c                   1.1.1.4.2.2
  src/crypto/openssl/ssl/s3_srvr.c                            1.1.1.9.2.3
  src/sys/conf/newvers.sh                                       1.48.2.19
RELENG_4_8
  src/UPDATING                                             1.73.2.80.2.15
  src/crypto/openssl/crypto/asn1/asn1_lib.c               1.1.1.1.2.7.2.1
  src/crypto/openssl/crypto/asn1/tasn_dec.c               1.1.1.1.2.1.2.1
  src/crypto/openssl/crypto/x509/x509_vfy.c               1.1.1.1.2.4.2.1
  src/crypto/openssl/ssl/s3_srvr.c                        1.1.1.1.2.7.2.1
  src/sys/conf/newvers.sh                                  1.44.2.29.2.14
RELENG_4_7
  src/UPDATING                                             1.73.2.74.2.26
  src/crypto/openssl/crypto/asn1/asn1_lib.c               1.1.1.1.2.6.2.1
  src/crypto/openssl/crypto/x509/x509_vfy.c               1.1.1.1.2.3.2.2
  src/crypto/openssl/ssl/s3_srvr.c                        1.1.1.1.2.5.2.3
  src/sys/conf/newvers.sh                                  1.44.2.26.2.25
RELENG_4_6
  src/UPDATING                                             1.73.2.68.2.55
  src/crypto/openssl/crypto/asn1/asn1_lib.c               1.1.1.1.2.3.6.4
  src/crypto/openssl/crypto/x509/x509_vfy.c               1.1.1.1.2.2.8.3
  src/crypto/openssl/ssl/s3_srvr.c                        1.1.1.1.2.3.6.4
  src/sys/conf/newvers.sh                                  1.44.2.23.2.43
- -------------------------------------------------------------------------

VII. References

<URL: http://www.openssl.org/news/secadv_20030930.txt >
<URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0545 >
<URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0543 >
<URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0544 >
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (FreeBSD)

iD4DBQE/fe+bFdaIBMps37IRAmp8AKCDqpNf+MCJ6K1eFyWPul/cnjSzTgCY8hd6
IIOxA/5Hl4quuh64va5/5A==
=1DI+
-----END PGP SIGNATURE-----
